package com.lhy.admin.common.mvcplus.wrapper;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lhy.admin.common.mvcplus.entity.ComparatorEnum;
import com.lhy.admin.common.mvcplus.entity.DbField;

import java.util.Arrays;

/**
 * SearchComparator 搜索条件比较器
 * @author hyluan
 * @date 2022/6/24 17:46
 */
public interface SearchComparator {

    /**
     * 校验字段是否有效，无则则不拼接wrapper
     * @param dbField
     * @return
     */
    boolean valid(DbField dbField);

    /**
     * 根据字段动态拼接wrapper
     * @param queryWrapper
     * @param dbField
     */
    void accept(QueryWrapper queryWrapper, DbField dbField);

    /**
     * 比较器类型
     * @return
     */
    ComparatorEnum comparatorEnum();

    default String[] splitStr(String str){
        if (StrUtil.isBlank(str)) {
            return new String[0];
        }
        return Arrays.stream(str.split(",")).filter(StrUtil::isNotEmpty).toArray(String[]::new);
    }
}
